package com.zpa.redisstreamlistener.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * redis stream 监听注解 类似 @KafkaListener
 * 使用该注解 最好配置 JVM 参数一起启动 如下：
 * java -Dredisson.cluster.stream.broadcast-group-id=*** -Dredisson.cluster.stream.consumer-name=***-jar ***.jar
 */
@Target({ ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface RedisStreamListener {
    /**
     * 监听容器工厂 Spring 的 Bean 名称
     */
    String containerFactory() default "";

    /**
     * 监听的 topic
     */
    String topic();

    /**
     * 使用默认值 为广播模式
     * 自定义值 为竞争消费
     */
    String groupId() default "";

    /**
     * 自动提交
     */
    boolean autoSubmit() default true;
}
